package com.sooth.micro.camunda.service;


import com.dream.system.config.Page;
import com.sooth.micro.camunda.converter.bean.ProcessModel;
import com.sooth.micro.camunda.view.*;

import java.util.List;

public interface IMicroCamundaService {
    void deploy(DeployVo deployVo);

    void start(ProcessVo processVo);

    void approve(ApproveVo approveVo);

    void reject(String taskId);

    ProcessModel convertToModelByProcessDefinitionId(String processDefinitionId);

    ProcessModel convertToModelByProcessInstanceId(String processInstanceId);

    ProcessModel convertToModelByTaskId(String taskId);

    List<DeploymentVo> processDefinitionListByKey(String processDefinitionKey);

    void suspendProcessDefinitionById(String processDefinitionId);

    void activateProcessDefinitionById(String processDefinitionId);

    Page deploymentList(ProcessDefinitionDto processDefinitionDto, Page page);

    Page todoList(TodoTaskDto todoTaskDto, Page page);

    Page todoneList(TodoneTaskDto todoneTaskDto, Page page);

    Page applyList(ApplyDto applyDto, Page page);

    ProcessModelVo getProcessModel(String processDefinitionId);

    ProcessModelVo getTaskModel(String taskId);

    ProcessModelVo getInstanceModel(String processInstanceId);

    void deleteDeployment(String id);

    List<HistoryRecordVo> listHistoryRecordByTaskId(String taskId);

    List<HistoryRecordVo> listHistoryRecordByProcessInstanceId(String processInstanceId);

    void transfer(TransferVo transferVo);

    void delegate(DelegateVo delegateVo);
}
